Descrizione |
---|
Questa macro crea un triangolo isoscele dati l'angolo e l'altezza. Il nuovo triangolo viene creato nella coordinata reale. (Riga di comando, incolla questa macro completa nella console Python). Versione macro: 00.03 Ultima modifica: 2019/07/02 Versione FreeCAD: All Download: Icona della barra degli strumenti Autore: mario52 |
Autore |
mario52 |
Download |
Icona della barra degli strumenti |
Link |
Raccolta di macro Come installare le macro Personalizzare la toolbar |
Versione macro |
00.03 |
Data ultima modifica |
2019/07/02 |
Versioni di FreeCAD |
All |
Scorciatoia |
Nessuna |
Vedere anche |
Nessuno |
Questa macro crea un triangolo isoscele dati l'angolo al vertice e l'altezza del triangolo. Il vertice del triangolo è posizionato sulle coordinate xyz 0.0.0.
Copiare la macro Triangle AH completa nella console Python di FreeCAD
Icona della barra degli strumenti
Macro_triangleAH.FCMacro
__title__ = "triangleAH" __author__ = "Mario52" __version__ = "00.03" __date__ = "2019/07/02" # Give angle and on choice : height or base or hypo from math import cos, sin, tan, degrees, radians, sqrt import Draft, Part def triangleAH(angle, height=0.0, base=0.0, hypo=0.0): def line_length(x1 = 0.0, y1 = 0.0, z1 = 0.0, length = 10.0, angle2 = 0.0): # search coordinates x2 = x1 + (length * cos(radians(angle2))) y2 = y1 + (length * sin(radians(angle2))) z2 = z1 #+ () return x2,y2,z2 # return coordinates (xyz) to point x0 = y0 = z0 = 0.0 angle = float(angle) height = float(height) base = float(base) if base != 0: height = ( (base/2) / (tan(radians(angle/2))) ) # imposing base and calculate height if hypo != 0: height = hypo * (cos(radians(angle/2))) # imposing hypo and calculate height else: hypo = height / cos(radians(angle/2)) # calculate hypotenuse if base==0: # base of triangle base = (tan(radians(angle/2) ) * height) * 2 # calculate base a0 = line_length(x1=x0,y1=y0,z1=z0,length=height,angle2=0 ) # coord height of triangle a0 = line_length(x1=x0,y1=y0,z1=z0,length=0, angle2 = angle ) # point 0 (begin vertex) a = line_length(x1=a0[0],y1=a0[1],z1=a0[2],length= hypo, angle2=-(angle/2)) # b = line_length(a[0],a[1],a[2],length= (abs(a[1])*2), angle2=90.0) # base of triangle = (abs(a[1])*2) ## print() print("angle theet : ", angle) print("angles base : (", (180.0-angle)/2.0,"),(",(180-angle)/2.0,")") print("height : ", height) print("base : ", base) print("hypotenuse : ", hypo) print("surface : ", (base * height) / 2.0) print("_________________________") Draft.makeWire([FreeCAD.Vector(a0),FreeCAD.Vector(a),FreeCAD.Vector(b)],closed=True,face=True,support=None) # create triangle App.ActiveDocument.recompute() #Example #triangleAH(angle=90, height=10) #triangleAH(90, 10) #triangleAH(45, hypo=10)
triangleAH(angle=90, height=10)
# or
triangleAH(90, 10)
# or
triangleAH(45, hypo=10)
# or
triangleAH(90, base=10)
ver 00.03 2019/07/02 aggiunto "App.ActiveDocument.recompute()" e conversione verso Py3
ver 00.02 03/05/2015 : aggiunto "base=0.0", "hypo=0.0" dati del triangolo
ver 00.01 20/03/2015 :